home *** CD-ROM | disk | FTP | other *** search
- Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!hookup!lamarck.sura.net!howland.reston.ans.net!spool.mu.edu!vinny.csd.mu.edu!root
- From: carpenterv@vms.csd.mu.edu (V. S. Carpenter)
- Newsgroups: comp.lang.c,comp.lang.c.moderated,comp.lang.c++,news.answers,comp.answers
- Subject: LEARN C/C++ TODAY (A list of resources/tutorials)
- Followup-To: comp.lang.c,comp.lang.c++
- Date: 15 Apr 1995 21:44:24 GMT
- Organization: Vinny's Linux PC
- Lines: 1029
- Approved: news-answers-request@MIT.EDU,clc@solutions.solon.com
- Expires: 1 May 1995 00:00:00 GMT
- Message-ID: <learn-123094@vinny.csd.mu.edu>
- NNTP-Posting-Host: vinny.csd.mu.edu
- Keywords: learn c c++ programming tutorials WWW
- X-Submissions-to: carpenterv@vms.csd.mu.edu
- X-Questions-to: carpenterv@vms.csd.mu.edu
- Originator: root@vinny.csd.mu.edu
- Xref: senator-bedfellow.mit.edu comp.lang.c:134691 comp.lang.c.moderated:393 comp.lang.c++:122520 news.answers:42033 comp.answers:11276
-
-
- Archive-name: C-faq/learn-c-cpp-today
- Last-modified: Saturday - April 15, 1995
-
- Copyright (c) 1994 Vinit Carpenter
- All rights reserved
-
-
- Introduction:
- -------------
-
- This is a list of a few C and C++ language tutorials available to a
- user. This list includes interactive tutorials, public-domain code
- collections, books etc. I've developed this FAQ purely as a volunteer
- effort as a service to the Internet community. Although every effort
- has been made to insure that all the information here is as accurate as
- possible, no guarantee is implied or intended.
-
- I welcome comments, suggestions or criticism for all the people out
- there on the net that read this. If you can help me make this list a
- little better, you will be helping a lot of people out there on the
- net. I am a horrible writer and an even worse speller. If you find
- any errors or would like to suggest any additions please feel free to
- email me at the address below:
-
- carpenterv@vms.csd.mu.edu
-
-
- What's new in this issue:
- -------------------------
-
- This section of the document will point out all the new additions,
- corrections, updates etc. If there is enough interest, I will start
- producing a 'diff' version.
-
- 1. Added a second web server that has the HTML and PS version of this
- document.
- 2. Updated the information on the 'C++ on the WWW'. The address has
- of the web server has changes. The author also converted Dordill's
- C++ course to HTML which is online.
- 3. Updated the information in the MSDOS/Windows compilier section.
- 4. Added a new item called `Programming in C' that contains a great
- collection of C and programming items.
- 5. Updated the information on the C++ FAQ.
- 6. Added a lot of information on OS/2. (Joe Dougherty)
- 7. Added more information about Scott Meyers new book titled "More
- Effective C++".
- 8. Updated the oak.oakland.edu info and the directory structure has
- been changed.
- 9. Update the information on the C Snippets packages. The author
- released a new package that includes 400+ files.
-
-
- I am switching to URL in place of the standard ftp and filename format.
- URL stands for "Uniform Resource Locator". Think of it as a networked
- extension of the standard filename concept: not only can you point to a
- file in a directory, but that file and that directory can exist on any
- machine on the network, can be served via any of several different
- methods, and might not even be something as simple as a file: URLs can
- also point to queries, documents stored deep within databases, the
- results of a finger or archie command, or whatever.
-
- File URL:
- ---------
- file://oak.oakland.edu/simtel/msdos/c/00_index.txt
-
- Gopher URL:
- -----------
- To connect to a particular gopher server, use this URL:
-
- gopher://gopher.tc.umn.edu/
-
- News URL:
- ---------
- To point to a Usenet Newsgroups, the URL is simply:
-
- news:comp.lang.c
-
- HTTP URL:
- ---------
- HTTP stands for HyperText Transport Protocol. HTTP servers are
- commonly used for serving hypertext documents
-
- http://vinny.csd.mu.edu
-
- This file is posted on the 1st and the 15th of each month to the Usenet
- Newsgroups COMP.LANG.C, COMP.LANG.C++, NEWS.ANSWERS & COMP.ANSWERS.
- The HTML and postscript version of this documents are available.
- Here's the URL:
-
- http://vinny.csd.mu.edu
-
- NOTE: This is my Linux PC that does get inundated with request. The
- last time I checked the stats, there were about 27 connections every
- minute. If you get timed out, please try again. The most recently
- posted version of this document is kept on the news.answers archive on
- rtfm.mit.edu. You can receive it via anonymous ftp. The URL is listed
- below.
-
- ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/learn-c-cpp-today
-
- If you don't have access to ftp, you can also receive this file via
- e-mail by sending mail to mail-server@rtfm.mit.edu with:
-
- send /pub/usenet/news.answers/C-faq/learn-c-cpp-today
-
- in the body (not subject line) of your message. You can also receive
- the latest version via electronic mail by e-mailing me.
-
- To: learncpp@vinny.csd.mu.edu
- Subject: send learn-c-cpp-today
- Body: ignored. Can be blank.
-
- A lot of tutorials discussed here are available via anonymous ftp. If
- you don't have ftp, you can also retrieve these files via a ftp-email
- gateway. To retrieve files via e-mail, send mail to
- ftpmail@decwrl.dec.com with the command HELP in the body of the message
- to receive a complete list of all commands. A typical message would
- look something like this:
-
- connect oak.oakland.edu
- chdir /simtel/msdos/c
- binary
- uuencode
- get xxx.zip
- quit
-
- Some of the items discussed here are platform-dependent, but most of
- the items are applicable across all platforms (portable). If you have
- any comments, suggestions, complaints, additions, etc, please feel free
- to e-mail me at the following address:
-
- carpenterv@vms.csd.mu.edu
-
- If you are working on a tutorial or would like something added to this
- list, please e-mail me at the address given above.
-
- The Origins of C and C++:
- -------------------------
-
- The 'C' programming language was originally developed for and
- implemented on the UNIX operating system, on a DEC PDP-11 by Dennis
- Ritchie. One of the best features of C is that it is not tied to any
- particular hardware or system. This makes it easy for a user to write
- programs that will run without any changes on practically all machines.
- C is often called a middle-level computer language as it combines the
- elements of high-level languages with the functionalism of assembly
- language.
-
- C allows the manipulation of bits, bytes and addresses- the basic
- elements with which the computer functions. Another good point about C
- is its portability which makes it possible to adapt software written
- for one type of computer to another. C was created, influenced, and
- field tested by working programmers. The end result is that C gives
- the programmer what the programmer wants. C offers the speed of
- assembly language and the extensibility of FORTH, but few of the
- restrictions of Pascal and Modula-2.
-
- C++ is an enhanced version of the C language. C++ includes everything
- that is part of C and adds support for object-oriented programming
- (OOP). In addition, C++ also contains many improvements and features
- that make it a "better C", independent of object oriented programming.
- C++ is actually an extendible language since we can define new types in
- such a way that they act just like the predefined types which are part
- of the standard language.
-
- If you just use C++ as a better C, you will not be using all of its
- power. Like any quality tool, C++ must be used the way it was designed
- to be used to exploit its richness. Some of the new features include
- encapsulation, inline function calls, overloading operators,
- inheritance and polymorphism. I am not going to explain what they mean
- here as that would simply take me away from my purpose here, but you
- can refer to any good C++ book or the C++ FAQ (Item 7) for more
- information.
-
-
- What do you need to get started?
- --------------------------------
-
- The first thing you need is a compiler. A compiler reads the entire
- program and converts it into object code, which is a translation of the
- program source code into a form that the computer can execute directly.
-
-
- UNIX SYSTEM:
-
- Type cc at the % prompt. If you don't get any error messages, you
- probably have a C compiler . If you get an error message, try acc, gcc
- or g++. If any of these don't work, contact your local system
- administrator and ask him/her to get you a C/C++ compiler. GNU C/C++
- compiler is available from a lot of anonymous ftp sites free of charge.
- Look into it. (I've got g++ running on my Linux box without any
- problems)
-
- MSDOS/Windows/OS2/Linux (IBM COMPATIBLES):
-
- There are a lot of good compilers available to you. Microsoft Quick C
- and Borland Turbo C/C++ are both good products for beginners. You can
- buy both of them for under $50.00. I use Microsoft Quick C and
- MS-Visual C/C++, and I prefer Quick-C for all my DOS programs as it is
- small, and yet very powerful. Most of my programming is now on my
- Linux PC with gcc/g++. (If you want a great 32 bit operating system,
- you should look into Linux. E-mail me for details). You can also get
- the DOS port of GNU C/C++ called DJGPP from oak.oakland.edu
- /simtel/msdos/djgpp.
-
- The increased popularity of OS/2 and it's latest incarnation Warp, has
- provided programmers with a wider selection of compilers and
- programming tools. Still available for free is the GNU gcc package
- under the name emx. Emx integrates nicely with the Extended Editor
- included with OS/2. It's available on ftp.cdrom.com, hobbes.nmsu.edu,
- and other sites. IBM provides the CSet++ 2.x, as well as a smaller,
- less-expensive package on CD-ROM called CSet++ First Step. Other
- popular compilers include Borland C++ 1.0 for OS/2, and Watcom C/C++
- for OS/2 10.0, and CA-C++ for OS/2 from Computer Associates.
-
-
- OpenVMS (VAX & AXP)
-
- If you're on a VAX, type in CC to check and see if you have a C
- compiler. VAX C is not the best compiler around, but it certainly does
- the job. If you don't have a C compiler, look into the GNU C/C++
- compiler GCC. You can get the VAX version of GCC from ftp.spc.edu via
- anonymous ftp. If on a AXP system, you should have access to DEC
- C/C++. Please contact your local system administrator or computer
- consultant for more site specific questions.
-
- Macintosh (Apple/PowerMac)
-
- There are three main players in the Mac compiler market: MPW (from
- Apple), THINK C / Symantec C++ (both from Symantec), or CodeWarrior
- (from Metroworks): THINK C is $225 (only a C compiler), while Symantec
- C++ is $375 (includes C and C++ compilers). CodeWarrior comes in three
- versions: bronze, silver, and gold, at $199/299/399, respectively.
- Bronze generates 68K code, silver generates PowerPC code, and gold
- generates both. All three versions include C, C++, and Pascal
- compilers. The Symantec C++ compiler (ver 7.0) can be bought with a
- cross-compiler for the PowerMac.
-
- There have been two attempts at freeware/shareware Mac C compilers:
- Sesame C and Harvest. Harvest C was an ambitious attempt at a
- production-quality freeware compiler which was later abandoned by the
- author.
-
-
- Tutorials:
- ----------
-
- 1) Title: A C tutorial.
- Filename: C-LESSON.ZIP
- Author: Christopher Sawtell.
- E-mail: chris@gerty.equinox.gen.nz
- URL: ftp://garbo.uwasa.fi/pc/c-lang/c-lesson.zip
-
- This tutorial contains a complete course for you to learn the 'C'
- computer language itself. Some knowledge, of computers and the jargon
- is assumed, but complicated concepts are fully explained. This
- tutorial is geared towards the UNIX operating system, but everything
- discussed here applies across all platforms. Most of the source code
- included here compiles under all the platforms. This is a good effort
- and is worth your time. Updates to this tutorials are posted to the
- USENET group comp.lang.c.
-
- 2) Title: Coronado;s Generic C tutor v2.0
- Filename: GENCSRC.ZIP
- GENCTXT.ZIP
- Author: Gordon Dodrill
- E-mail: --
- URL: ftp://oak.oakland.edu/simtel/msdos/c/gencsrc.zip
- ftp://oak.oakland.edu/simtel/msdos/c/genctxt.zip
-
-
- This is one of the most complete tutorials out there. Once again, most
- of the items covered here are apply across all platforms. There are
- some items discussed here that are DOS dependent. The tutorial
- includes a manual that covers all the aspects of the C language. The
- archive also includes a huge collection of C code that is discussed in
- this tutorial. The best way to learn anything is by practical
- application and this tutorial does just that. A payment of $10.00 is
- requested by the author if you find the tutorial helpful, but the
- payment is not required. I think you should send in the $10.00 as a
- lot of time and effort went into this project.
-
- 3) Title: Thread An On-Line C Help File V 1.01
- Filename: THREAD.ZIP
- Author: Fran Horvath
- E-mail: --
- URL: ftp://oak.oakland.edu/simtel/msdos/c/thread.zip
-
-
- Thread is a C language help utility. It was written by a member of the
- U.S.D.A. Grad School faculty to help students learning the C language.
- Thread is a variable record-length database, together with an index,
- that enables the fast lookup and display of C keywords, standard
- library functions, and other items. There are a few important
- functions missing from this help utility, but it is still a pretty good
- resource. Give it a shot.
-
- 4) Title: Collection of C-Snippets
- Filename: SNIP9404.ZIP
- Author: Bob Stout
- E-mail: bobstout@neosoft.com
- URL: ftp://oak.oakland.edu/simtel/msdos/c/snip9503.zip
-
- This is the March 95 release of SNIPPETS which is a public
- domain/freeware portable C source code & instructional text. According
- to the author, the 1.6 MB archive contains over 400 files and
- approximately 35% of it is PC-specific. The rest of it is completely
- portable. The PC-specific functions are system-level utility code with
- no multimedia or GUI code. This archive has been tested on all popular
- PC compilers and gcc, SCO, and HP/UX compilers where possible. An
- eclectic collection containing everything from macros to complete
- cut-and-paste C code solutions & utilities, along with FAQ and
- instructional files.
-
- There is a piece of code for every single task starting with macros to
- complete cut-and-paste C code solution and utilities, along with some
- frequently asked questions and instructional files. This archive is a
- must for every programmer. If you already have a copy of snip9404.zip,
- see snpd9503.zip which includes the diff needed to upgrade to
- snip9503.zip. Numerous bug fixes and enhancements were made in this
- archive and 60 New files added.
-
- This is Public Domain/freeware created by the archivist, ex Fidonet
- C_Echo moderator and author, Bob Stout
-
-
- 5) Title: COMP.LANG.C FAQ
- Filename: FAQ
- Author: Steve Summit
- E-mail: scs@eskimo.com
- URL: ftp://rtfm.mit.edu/pub/usenet/news.answers/C-faq/faq
-
-
- The FAQ (Frequently Asked Questions) is a compilation of frequently-
- asked questions of the usenet group, COMP.LANG.C along with the
- answers. Steve's put in a lot of work and this compilation shows it.
- I found that the FAQ answered a lot of my questions. I even learned a
- lot of new things browsing through the document. I think this FAQ
- should should be on your computer desk right next to a good C
- programming book. The FAQ is posted to COMP.LANG.c and news.answers
- every month along with the diff version.
-
-
- 6) Title: TUTOR v3.10
- Filename: CTUTORDE.ZIP
- Author: Gordon Dodrill
- E-mail: rowe@netcom.com
- URL: ftp://oak.oakland.edu/simtel/msdos/c/ctutorde.zip
-
-
- This is an educational learning tool which helps expedite the difficult
- process of learning the C Programming Language. It includes a
- tutorial, style guide, and interactive quiz program all integrated
- together in one program. The tutorial covers both K&R version of C and
- ANSI C. One of the biggest limitation of this tutorial is that it is
- only available for DOS computers.
-
-
- 7) Title: Programming in C
- Filename: CE.html
- Author: Dave Marshall
- E-mail: Dave.Marshall@cm.cf.ac.uk
- URL: http://www.cm.cf.ac.uk/Dave/C/CE.html
-
- This is one of the best C programming tutorials out there on the World
- Wide Web (WWW). See tutorial #11 for more information on the web and
- tools to access the web. This tutorial starts out with some basic
- ideas and then extends to some more advanced features of C. With the
- popularity of the World Wide Web, items on the web servers are going to
- be very popular. This is really a great tutorial and worth checking
- out. Some of the items discussed here are loops, arrays, string
- manipulation, pointers, dynamic memory allocation, I/O, UNIX, C
- preprocessor and some exercises. While you're out there, check out
- Ceilidh, the online C tutoring system.
-
-
-
- 8) Title: ANSI C for Programmers on UNIX systems.
- Filename: love_C.ps.z, love_C.shar
- Author: Tim Love
- E-mail: tpl@eng.cam.ac.uk
- URL: ftp://svr-ftp.eng.cam.ac.uk/pub/misc/love_C.ps.Z
-
-
- This is a really nice C tutorial geared towards people on UNIX system
- as the title would suggest. This document introduces C by providing
- sample programming tasks. One of the good things about this tutorial
- is that all the source code included is ANSI compliant. This tutorial
- also includes programming exercises to aid or gauge your progress as
- you go through the material (answers included in back). The tutorial
- covers some of the basics such as functions, pointers and string
- manipulation followed by some programming examples to apply the items
- you've just learned.
-
- There is also a section on memory allocation that illustrates the use
- and dangers of malloc. The section on the Make utility helped me a lot
- as I really don't like make and makefiles. The section of debugging is
- also extensive and has some great tips. The appendix of this tutorial
- also has a section of converting from K&R to ANSI C. Really great job
- and well worth the checking into.
-
-
- 9) Title: Coronado Enterprises C++ Tutorial (v2.20)
- Filename: CPTUTS22.ZIP
- CPTUTT22.ZIP
- Author: Gordon Dodrill
- E-mail: --
- Phone: (505) 293-5464
- URL: ftp://oak.oakland.edu/simtel/msdos/cpluspls/cptuts22.zip
- ftp://oak.oakland.edu/simtel/msdos/cpluspls/cptutt22.zip
-
-
- Just like its C counterpart, this is really one of the best and most
- complete C++ tutorial out there. This tutorial is not for the person
- just starting out in programming as C++ is not an ideal first language.
- But if you are familiar with C or any other programming language, this
- tutorial will get you started with C++. All the source discussed in
- this tutorial is included and learning is really accelerated as you can
- compile the code while you are reading about it. This tutorial will
- assume a thorough knowledge of the C programming language and little
- time will be spent on the fundamental aspects of the language. Special
- attention has be devoted to explaining the newer additions as provided
- by the ANSI-C standard, as many programmers are used to the old K&R
- school of thought.
-
- 10) Title: COMP.LANG.C++ FAQ
- Filename: FAQ
- Author: Marshall P. Cline, Ph.D.
- E-mail: cline@parashift.com
- URL: ftp://sun.soe.clarkson.edu/pub/C++/FAQ
-
- Wow!!! That's really all I can say about this collection of questions
- and answers for C++ and Object Oriented Programming (OOP). This is the
- complete FAQ for the Newsgroups COMP.LANG.C++ compiled by Dr. Marshall
- Cline. I have been programming in C++ for a few months and am far away
- from being an 'expert', and this compilation helped me enormously.
- Once again, this is not for the person that is starting to learn C++,
- but if you've already taken the first step, this FAQ is for you. If
- you don't have ftp, you can also receive it via e-mail by sending a
- message to archive-server@sun.soe.clarkson.edu with the subject `send
- C++/FAQ'.
-
- The C++ FAQ has been released as a book called `C++ FAQS -- Frequently
- Asked Questions' by Addison-Wesley. The book is a complete re-write
- and contains about 5 times the material that is indexed and cross
- referenced. Check out the book section for a review of the book. The
- FAQ will still be posted in the Newsgroup comp.lang.c++, but if you
- find the FAQ helpful, you should really buy the book.
-
-
- 11) Title: C++ on the World Wide Web
- Filename: C++.html
- Author: Marcus Speh
- E-mail: marcus@x4u.desy.de
- URL: http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
-
- This is one of the award wining courses at the 1st WWW conference
- (congratulations Marcus. great job). One of the newest addition here
- is the Dorill C++ course converted to HTML. There is a wealth of
- information on C++ available on the World Wide Web (WWW). The World
- Wide Web (WWW) is a wide area hypermedia information retrieval system
- that gives the user universal access to a large universe of documents.
- One of the most popular to the Web is called Mosaic developed by NCSA.
- Mosaic is an Internet based global hypermedia browser that allows you
- to discover, retrieve and display documents and data from all over the
- world. Global hypermedia means that information located around the
- world is interconnected in an environment that allows you to travel
- through the information by clicking on hyperlinks-- terms, icons or
- images in documents that point to other related documents. Here's the
- URL (Uniform Resource Locator) for the C++ Virtual Course.
-
- http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
-
- You might also want to connect to info.desy.de and browse. I found a
- lot of great items such as documents and sources on C++ and Object
- oriented programming, Internet groups for discussions and questions on
- C++, discussion of Object-Oriented Literate Programming and many other
- postscript papers.
-
- http://info.desy.de/general/users.html
-
-
- 12) Title: Programming in C
- Filename: index.html
- Author: Jutta Degener
- E-mail: jutta@cs.tu-berlin.de
- URL: http://www.lysator.liu.se/c/index.html
-
-
- This is really one of the best collection of C related items out there
- on the World Wide Web maintained by the Lysator computer society, an
- association of computer science students at Linkoping University,
- Sweden. Here's a list of some of the items. There is a great section
- on ANSI C, reviews of 3 books and a list of errata from 2 books. There
- is a very interesting paper called `A development of the C language' by
- Dennis Ritchie that traces the origin of the language we know and love
- today.
-
- There is a HTML version of Kernighan's historical "Programming in C: A
- Tutorial" from 1974 (that describes an early version of C, four years
- before K&R. WARNING: DO NOT USE THIS DOCUMENT AS A TUTORIAL); also
- included are the "Ten Commandments for C Programmers (Annotated
- Version)" and a HTML version of Steve Summit's comp.lang.c FAQ.
-
- 13) Title: C++ Annotations (ver 3.3.3)
- Filename: cplusplus.html
- Author: Frank Brokken & Karel Kubat
- E-mail: frank@icce.rug.nl, karel@icce.rug.nl
- URL: http://www.icce.rug.nl/docs/cplusplus/cplusplus.html
-
- This web based tutorial is intended for knowledgeable users of C who
- would like to make the transition to C++. This document presents an
- introduction to programming in C++. It is a guide for programming
- courses taught at State University of Groningen This document is not a
- complete C/C++ handbook, but rather serves as an great addition to
- other documentation sources. The reader should take note of the fact
- that an extensive knowledge of the C programming language is assumed
- and required.
-
- This document continues where topics of the C programming language end,
- such as pointers, memory allocation and compound types which makes it a
- very good programming guide. I highly recommend this tutorial to any
- individual who is really interested in becoming extremely knowledgeable
- on C++ and a proficient programmer. Here is a listing of the chapters.
-
- 1. Introduction to C++
- 2. A first impression of C++
- 3. Classes
- 4. Classes and memory allocation
- 5. Static data and functions
- 6. Inheritance
- 7. Polymorphism, late binding and virtuality
- 8. Concrete examples of C++
- 9. Templates
-
- 14) Title: C programming reference 1.1
- Filename: cref.html
- Author: Martin Leslie
- E-mail: leslim@gatwick.Geco-Prakla.slb.com
- URL: http://vinny.csd.mu.edu/martin/DOC/C/cref.html
-
- This is not an ordinary C language tutorial, rather it is a great
- reference guide for the C programming language. As the author states,
- "I have found several C tutorials and lessons on the net but no
- reference documents. This is not an attempt to replace the many high
- quality books available, but does try to provide an on-line reference
- that can give answers to questions quickly and without hassle".
-
- Martin has put a lot of work in this and the archive is definitely
- worth checking out. One of the nicest item is the `Function Quick
- Reference'. It is a summary of a lot of useful functions including
- ANSI standard functions, Non Standard functions from CONIO.H, non
- Standard UNIX functions, user written functions and variable length
- argument lists including the library, prototype, syntax and example
- programs. Here's a sample.
-
- FGETC/GETC FUNCTION 08-MAY-94
-
- fgetc and getc both read a character from a file (input stream) and
- have the same syntax. They are for all intents and purposes the same!
-
- Library: stdio.h
-
- Prototype: int fgetc(FILE *stream);
-
- Syntax: ch = fgetc(file_pointer);
- ch = getc(file_pointer);
-
- [IMAGE] example program.
- See also:
-
- getchar, fgets, gets
- getch, getche (non standard)
-
-
- And if you're really nice to him, he will give a really cool program to
- randomly change the root window color on X Displays. :) The program
- randomly selects a target color and then performs a basic interpolation
- to move from the current color to the target color. When the target
- has been reached, a new target is selected and the process is repeated.
-
-
-
- Books currently being reviewed:
- ------------------------------
-
- If you have any thoughs or comments, please feel free to e-mail me at
- carpenterv@vms.csd.mu.edu
-
- 1. Scientific and Engineering C++: An introdcution with Advanced
- Techniques and Examples by John J. Barton and Lee R. Nackman
- (ISBN 0-201-53393-6)
-
- 2. C++ A Pratical Introduction by Brian Hahn (ISBN 1-85554-325-7)
-
- 3. C++ For Dummies by Stephen R. Davis (ISBN 1-56884-163-9)
-
- 4. The Craft of C: Take Charge Programming by Herbert Schildt (ISBN
- 0-07-881882-6)
-
- 5. C By Discovery by L.S.Foster (ISBN 1-881991-29-6)
-
- 6. Teach yourself C++ programming in 21 days by Jesse Liberty (ISBN
- 0-672-39541-0)
-
-
- Books:
- ------
-
-
- [1] "The C Programming Language" (2nd ed.)
- Brian W. Kernighan & Dennis Ritchie
- Prentice Hall ISBN: 0-13-110362-8
-
- This is the second edition of the original Kernighan & Ritchie (K&R)
- text. This book is commonly referred to as the New Testament as it
- includes the modifications incorporated by the ANSI standard, while
- retaining the nature of the 1st edition. This book assumes that the
- reader has some basic programming knowledge. So if you're just
- starting to program and C is the first language, this might not be the
- ideal book. This is one of THE BEST books on C and a must have,
- especially if you're starting your own little programming library.
-
-
- [2] "Programming in ANSI C" (Revised edition: 1994)
- Kochan, Steven
- SAMS Publishing ISBN 0-672-30339-6
-
- This book by Steve Kochan is absolutely the best book for anyone
- starting out programming in C. This is an excellent introductory text
- with frequent examples and good text. This book makes no assumptions
- about the particular computer system or operating system on which the C
- language is implemented. This books is written for novices and
- experienced programmers alike. I love this book as the comprehensive
- 'teach by examples' book can help you master the unique features of the
- C language. There is complete coverage of program looping, decision
- making, arrays, strings, pointers and bit operations and helpful
- end-of-chapter exercises. This is the book I used to learn C and it
- really is a great book. The K&R book is really great as a reference,
- but not as the first book.
-
-
- [3] "Expert C Programming: Deep C Secrets"
- Peter Van Der Linden
- SunSoft Press. (ISBN 0-13-177429-8)
-
-
- Peter has written one of the greatest books to hit the computer book
- stands in a long time! This is not your typical C book, but is rather
- a fun book to read. As I told Peter, most C programming texts are
- really boring as all they do is describe the functions, give a abstract
- example and then move onto something different. This book is chock
- full of real world C stories and folklore, including a story about the
- C bug that brought down the AT&T network. I found the tongue-in-cheek
- attitude and real world examples/stories very, very interesting. Run,
- don't walk, down to your local store and buy this book. I really
- really loved this book, and I read most of it in one sitting. There is
- also a great introduction to C++ for C programmers that will get you
- started with C++ and Object-Oriented programming. This book is not for
- beginners, but is a great second book on C.
-
- Expert C Programming is also ideal for those C programmers who want to
- move to C++. According to the author, the book puts the "fun" back in
- "functions" :)
-
-
-
- [4] "C: The Complete Reference" (2nd ed.)
- Schildt, Herbert.
- Osbourne/McGraw-Hill. (ISBN 0-07-881538-X).
-
- This is a pretty good C language reference book. I am more partial to
- the Microsoft C Bible as a reference but this is not a bad book at all.
- If you're a beginning C programmer or a seasoned pro, the answers to
- most of C questions can be found in this one-step resource. This book
- presents an extensive summary of C library functions defined by ANSI
- and many common extensions including UNIX. This book is a must for
- that perfect programmer library.
-
- [5] Absolute Beginner's Guide to C
- Perry, Greg
- SAMS Publishing. ISBN 0-672-30341-8
-
- This is a absolutely beginner's book. If you have never programmed
- before, this book is for you. No knowledge of any programming concept
- is assumed. I like the fact that this book talks to you at your level
- without ever talking down to you. This book does not try to overwhelm
- the beginners with a lot of technical details while emphasizing
- introductory principles. If you've never programmed, this is the book
- for you. If you are familiar with programming, I would suggest either
- 'The C programming language' by Kernighan & Ritchie or 'Programming in
- ANSI C' by Kochan.
-
- [6] Microsoft C Bible. 1990 (2nd ed.)
- Waite Group Staff.
- Howard W. Sams & Company. ISBN 0-672-22620-0
-
- This book is a must for every programmer, especially those who program
- in the DOS environment. The Bible organizes and simplifies the
- information contained in Microsoft's C library. Each function page
- gives the purpose, syntax, example call, includes, common uses, returns
- and examples. The book also has compatibility check boxes, so you can
- be sure your program compiles with the Microsoft C v5.0-7.0, Microsoft
- Quick C, Borland Turbo C and UNIX system V compilers.
-
- [7] Programming C in 12 Easy Lessons
- Greg Perry ISBN:0-672-30522-4
- Sams (1st edition, 4/94)
- Reviewed by: Don Lockhart (dlock@nlbbs.com)
-
- In a nutshell: This book is very well thought out. It is very clear
- and easy to follow for the new user. It categorizes information into
- Notes, Tips, Warnings, and starts each lesson with an overview of the
- concepts to be presented as well as a review of them at the end of each
- lesson. Sidebars are also presented with useful relevant information.
- When new terms appear a definition of them appears in the page margin
- to further explain their usage. Each lesson ends with some practice
- "homework" and "extra credit" work to further enhance what you've just
- learned. In the front of the book, there's a tear-out reference card
- with C functions, operators etc on one side, and Turbo C++ editing keys
- and functions on the other side. In the back of the book there's an
- offer for Borland C++ 4.0 or full blown Turbo C++ at "discount rates".
-
- All lesson coding is also pre-typed on the included diskette. Also on
- the disk you'll find the answers to all the homework as well as a
- "lite" version of Borland's Turbo C++ compiler. Differences from ANSI
- C to C++ are always noted.
-
- I have been "threatening" to learn C for a couple of years. This book
- has quickly taken me from the sidelines to diving in head first, and
- actually gotten me excited about it. The info is well presented, and I
- haven't come up with any questions yet that I have not been able to
- find the answer in the book. I'm not 100% sure, but I believe when I
- was at the book store there is also a sequel to this book that even
- gets into more of actually developing applications using C.
-
- [8] Teach Yourself C++ 1992
- Herbert Schildt
- Osborne McGraw-Hill. ISBN 0-07-881760-9
-
- Teach Yourself C++ is another great book from Herbert Schildt who is
- more popular for his great C books. This book is especially designed
- for programmers who already know how to program in C. Based on a
- 15-minute lesson format, this book includes a lot of exercise and skill
- checks to make sure your programming abilities grow by each chapter.
- This book is really the perfect introductory guide for anyone who
- already knows how to program in C.
-
- According to my sources, this book is currently under revision. There
- are several items missing from this book as it was written before C++
- was finalized. I still think it is a pretty nice book.
-
-
- [9] The C++ Programming Language (2nd edition)
- Bjarne Stroustrup
- Addison Wesley (ISBN 0-201-53992-6)
-
- Bjarne Stroustrup is the designer of C++ and has written 2 great books
- on C++. This book is divided into three parts: The first part provides
- a tutorial introduction to C++. The second part presents a discussion
- of design and software development issues arising in connection with
- the use of C++ and the third part is a complete reference manual. With
- the popularity of C++, several independent distributions of C++ have
- come forward, but the book discusses 'pure C++;' that is, no
- implementation dependent extensions are used. I have been programming
- in C++ for a while and yet found this book very helpful. One of the
- best way to learn a programming language is by writing small programs
- relevant to the item you study. There are exercises at the end of each
- chapter to test/apply what you learned in that particular chapter.
- This wasn't the book I used to learn C++ and I only recently got it
- from DEC [DEC ships this book with their C++ compiler in lieu of real
- documentation :)], but I wish I had gotten it sooner. This is really a
- great book and worth every penny.
-
- There is also a book called "The C++ answer book" by Tony L. Hansen.
- (Addison-Wesley ISBN # is 0-201-11497-6) and it contains the solutions
- to the problems in "The C++ Programming Language" by Bjarne Stroustrup.
-
-
-
- [10]Using Visual C++
- Shammas, Namir
- Que Corporation ISBN: 1-56529-626-5
-
- A lot of people have e-mailed me asking for recommendation for a Visual
- C++/MS-Windows programming book and the one I use/recommend is 'Using
- Visual C++'. This book is aimed at readers who are already familiar
- with C++ and Windows. This book covers many programming topics that
- use C++ and the Microsoft Foundation Classes (MFC). This book starts
- with an overview of the Visual C++ workbench and the MFC hierarchy.
- The book also discusses the AppWizard, ClassWizard and App Studio
- utility. This book really lets you take full advantage of the C++
- compiler and all the utilities that come with it. Microsoft provides a
- lot of great information with the compiler package, but I found it hard
- to look through 20 different manuals to find some basic information.
- By the time you finish this book, you will be ready to create your own
- MS-Windows applications. Windows programming is pretty complex, but
- this comprehensive guide shows you efficient and proven techniques to
- build powerful applications.
-
- Another great book is 'Visual C++: A Developer's Guide' by Alex
- Leavens. (ISBN 1-55851-339-6) This book explores the comprehensive set
- of programming tools that come with Visual C++. This book shows you
- how to take advantage of MFC, OLE 2.0, add sounds to various Windows
- systems events and creating icons, cursors and bitmaps images.
-
-
-
- [11]C++ Primer (2nd edition)
- Lippman, Stanley B
- Addison Wesley ISBN 0-201-54848-8
-
- The C++ Primer is a great book and will make learning C++ a joy. This
- really is one of the best books C++ book out there, but it assumes a
- lot of familiarity with programming concepts and a proficiency in C.
- Everyone I know who uses C++ recommends this book very highly. If you
- are interested in learning more about Object Oriented Program, you
- might consider buying "Object Oriented Design" by Peter Coad and Edward
- Yourdon" (ISBN 0-13-630070-7)
-
-
- [12]"C++ FAQs: Frequently Asked Questions"
- Marshall P. Cline and Greg A. Lomow
- Addison-Wesley ISBN 0-201-58958-3
-
- When I first heard about the book, it thought it would just be a
- reprint of the electronic version of the FAQ, but I was pleasantly
- surprised when I got my hands on the book (Thanks Deborah) This is no
- mere reprint. This is a *great great* book that contains answers to
- about 500 questions on programming, design, analysis and testing. This
- book is not for beginners, but for programmers who have figured out the
- syntax of the language, and are looking to implement them. If you have
- questions like "What is a class invariant?", "How should I use
- exceptions?", "What happens when a destructor is executed?", then this
- is the book for you.
-
- This is a very practical book that contains answers to some real-world
- programming questions that will really help anyone involved with
- software development. I just wish I had this book around when I was
- taking my C++ classes. Unlike other books, this book contains about
- 200 complete program rather than code snippets that leave you guessing
- about the implementation. This book is a definite jem and should be in
- every single programmers library. Go out and buy 2 copies of this
- book: One for the office and one for the nightstand at home.
-
-
- [13]Learn C++ on the Macintosh
- Dave Mark
- Addison-Wesley ISBN 0-201-62204-1
-
- This book comes with a customized version of Symantec C++ for the
- Macintosh. In addition, there is a coupon for obtaining the complete
- version of Symantec C++ at a much reduced price. I would recommend
- this book for those who are just beginning to program in C++; however,
- it does assume at least a working knowledge of C. There is a quick
- review of C at the beginning. Dave Mark also has a book 'Learn C on
- the Macintosh'. It has the same great style and comes highly
- recommended. Thanks Lizann Bolinger.
-
-
- [14]Effective C++
- Scott Meyers
- Addison-Wesley ISBN 0-201-56364-9
-
- This is just a great great book on C++ and is a must for every
- programming library. The book is a listing of things which you must
- get right if your program is to be safe and reliable, and a clear
- description of what it means to get them `right.' The book raises some
- very interesting issues that every programmer faces. C++ provides the
- structure and the means to talk about them in a concrete way and to
- program them explicitly.
-
- The author is working on another C++ book, and the title will be "More
- Effective C++. " Here's more information that the author posted in
- comp.lang.c++. If all goes according to plan, "More Effective C++"
- should be available around the end of September.
-
- As for the book itself, "More Effective C++" will use the same
- Item-based organization that I used in "Effective C++," but it will
- cover all new material, and it will not assume that readers have read
- "Effective C++." (If they have, so much the better, but it's not a
- prerequisite.) As such, "More Effective C++" isn't really "Effective
- C++, Volume 2," though it can be read that way, if you like.
-
- Like "Effective C++," "More Effective C++" will cover a variety of
- topics. One of those topics will be efficiency. The current draft
- contains at least 12 Items on that topic alone, and efficiency
- considerations comprise a thread that winds through many of the book's
- other Items, too.
-
- [15]Scientific and Engineering C++: An introduction with advanced techniques
- and examples
- John J. Barton and Lee R. Nackman
- Addison Wesley ISBN 0-201-53393-6
- Reviewed-by: ajayshah@cmie.ernet.in (Ajay Shah)
-
- A plethora of books on C++ exists; the above promises to be a book on
- numerical computation in C++. The authors are both from T. J. Watson
- Research Center and they do numerical computation for a living.
-
- Before we get to what the book offers, we should clarify what it is not
- : It is not a Numerical Recipes. It does not discuss the mathematical
- ideas underlying numerical algorithms, and it presents no library which
- you can start off using from day 1.
-
- Instead the authors are attacking a different problem, that of applying
- OOP in its C++ incarnation to do numerical computation. The typical
- reader is expected to be someone who is currently getting his work done
- in C or Fortran and would like to migrate to C++. The authors
- literally start from scratch in this enterprise; they have two versions
- of chapter 1, one aimed at migrants from C and another aimed at
- migrants from Fortran.
-
- Does the book succeed in these objectives? For the major part, my
- answer would be Yes. I will address two issues here:
-
- o Teaching C++ and OOP
-
- This is done reasonably well. However, I expect anyone who actually
- plunges into C++ seriously will want the primary two books on C++ too
- (i.e. Stroustrup and Lippman). They do a good job of the overall
- question of applying OOP to scientific computation, but I have a guess
- that you would come up with a lot of this yourself, and that your sense
- of taste may differ from theirs to some extent.
-
- o Practical advice aimed at numerical computing applications
-
- I felt the book does really well on this score. They take up a series
- of problems and give us the benefit of their good taste in coming up
- with designs. The last chapter does maximum likelihood using automatic
- differentiation to obtain derivatives -- this is a lovely theme that
- has not been much explored in the literature.
-
- One of the big questions on the minds of anyone thinking about using C
- or C++ for numerical computation is the existence of libraries like
- linpack; they are incredibly ugly on the score of software engineering,
- but they are incredibly well done on debugging and efficiency. Between
- f2c and C++, it appears quite possible to hide these ugly (but working)
- beasts under nice modern interfaces.
-
- This issue is really important at a practical level, and so far I've
- only seen net.wisdom on the subject. The authors deal with it in
- detail. It would have been awfully nice if they had just given us a
- full C++ view to lapack :-) but their focus is on ideas, not on giving
- blackboxes of code.
-
- All the source code of the book is on the net.
-
- I'm personally at the stage of having browsed in C++ for a while now
- but not having taken the plunge of fully leaving C yet. This book
- feels very useful to me at this point in my transition.
-
-
- Conclusion:
-
- C and C++ are great programming languages that can make programming a
- lot of fun. One of the best ways to learn is by taking a programming
- class. See if you can take a class at your school, or take a class at
- night school. Programming in C/C++ is a skill that could end up saving
- you your job or help you get a better job. I hope these tutorials help
- you in your quest to learn the C and C++ programming language.
-
-
- Acknowledgment:
- ---------------
-
- Steve Summit scs@eskimo.com
- Lizann Bolinger bolinger@zeno.ibd.nrc.ca
- Blake Sobiloff sobiloff@mail.lap.umd.edu
- Alex Wu wua@cpsc.ucalgary.ca
- Ian Jackson ijackson@nyx.cs.du.edu
- Peter Vanderlinden Peter.Vanderlinden@eng.sun.com
- Robin Schogol rschogol@lehman.com
- Marcus Speh marcus@x4u.desy.de
- Jutta Degener jutta@cs.tu-berlin.de
- Joe Dougherty jdough@gate.net
- Ajay Shah ajayshah@cmie.ernet.in
- Sonia Hamilton soniah@magna.com.au
-
- ---------
- * List of C tutorials Last Update: 04/15/95 *
- * Compiled By: Vinit Carpenter - carpenterv@vms.csd.mu.edu *
-
-
- Note that this document is provided as is. The information in it is
- *not* warranted to be correct; you use it at your own risk.
-
- o The LEARN C/C++ TODAY List is Copyright 1994 by Vinit S. Carpenter
- (carpenterv@vms.csd.mu.edu). It may be reproduced and distributed in
- whole or in part, subject to the following conditions:
-
- o This copyright and permission notice and the paragraph in the
- introduction about the frequency of updates must be retained on all
- complete or partial copies.
-
- o Any translation or derivative work must be approved by me before
- distribution. Email me - I'll will be happy to oblige !
-
- o If you wish to charge for non-machine-readable copies you need my
- approval before distribution. Note that this restriction is not
- intended to prohibit charging for the service of printing or copying a
- document supplied by your customer.
-
- o If you distribute partial copies of this list, instructions for
- obtaining the complete version must be included, and a means for
- obtaining a complete version free or at cost price provided.
-
- o Exceptions to these rules may be granted, and I shall be happy to
- answer any questions about this copyright --- Simply e-mail me. These
- restrictions are here to protect the contributors, not to restrict you
- as educators and learners.
-
- o Vinit Carpenter asserts the right to be identified as the author of
- this work, and claims the moral rights of paternity and integrity, in
- accordance with the Copyright, Designs and Patents Act, 1988.
-
- -----------------------------------------------------------------------------
- Vinit S. Carpenter Marquette University carpenterv@vms.csd.mu.edu
- -----------------------------------------------------------------------------
- Author of the INTERNET-MENU for OpenVMS and LEARN C/C++ TODAY List
- Moderator: COMP.BINARIES.IBM.PC
- * Email me for details *
- <a href="http://vinny.csd.mu.edu"> My Personal Linux Web Server</a>
- -----------------------------------------------------------------------------
- * Ayrton Senna daSilva - Rest In Peace *
- -----------------------------------------------------------------------------
- Geek Code: GE d? -p+ c++++ l++ u++ e- m--- s+/+ n--- h++ f? g+ w++ t+++ y+ y*
-
-